#pragma once

#include <iostream>
#include <string>
#include <ctime>//时间

//日志等级
#define NORMAL  1
#define WARNING 2   
#define DEBUG   3 
#define FATAL   4   //致命错误

//在宏参当中带#,可以将宏名称转为字符串      __FILE__ 获取文件名      __LINE__行号的获取
//想打日志直接使用LOG即可,传入日志等级和日志消息
#define LOG(LEVEL, MESSAGE) log(#LEVEL, MESSAGE, __FILE__, __LINE__)    

//一旦出问题了,我们最想知道在哪个文件内部,第几行,出现了什么错误
void log(std::string level, std::string message, std::string file, int line)
{
    //time(nullptr):输出的是时间戳
    std::cout << "[" << level << "]" << "[" << time(nullptr) << "]" 
        << "[" << message << "]" << "[" << file << " : " << line << "]" << std::endl;
}
